<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>stream_parser::finish (3 of 3 overloads)</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../../index.html" title="Chapter 1. Boost.JSON">
<link rel="up" href="../finish.html" title="stream_parser::finish">
<link rel="prev" href="overload2.html" title="stream_parser::finish (2 of 3 overloads)">
<link rel="next" href="../stream_parser.html" title="stream_parser::stream_parser">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload2.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../finish.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../stream_parser.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h6 class="title">
<a name="json.ref.boost__json__stream_parser.finish.overload3"></a><a class="link" href="overload3.html" title="stream_parser::finish (3 of 3 overloads)">stream_parser::finish
          (3 of 3 overloads)</a>
</h6></div></div></div>
<p>
            Indicate the end of JSON input.
          </p>
<h7><a name="json.ref.boost__json__stream_parser.finish.overload3.h0"></a>
            <span class="phrase"><a name="json.ref.boost__json__stream_parser.finish.overload3.synopsis"></a></span><a class="link" href="overload3.html#json.ref.boost__json__stream_parser.finish.overload3.synopsis">Synopsis</a>
          </h7><pre class="programlisting"><span class="keyword">void</span>
<span class="identifier">finish</span><span class="special">();</span>
</pre>
<h7><a name="json.ref.boost__json__stream_parser.finish.overload3.h1"></a>
            <span class="phrase"><a name="json.ref.boost__json__stream_parser.finish.overload3.description"></a></span><a class="link" href="overload3.html#json.ref.boost__json__stream_parser.finish.overload3.description">Description</a>
          </h7><p>
            This function is used to indicate that there are no more character buffers
            in the current JSON being parsed. If ther resulting JSON is incomplete,
            the error is set to indicate a parsing failure.
          </p>
<h7><a name="json.ref.boost__json__stream_parser.finish.overload3.h2"></a>
            <span class="phrase"><a name="json.ref.boost__json__stream_parser.finish.overload3.example"></a></span><a class="link" href="overload3.html#json.ref.boost__json__stream_parser.finish.overload3.example">Example</a>
          </h7><p>
            In the code below, <a class="link" href="../finish.html" title="stream_parser::finish"><code class="computeroutput"><span class="identifier">finish</span></code></a> is called to indicate
            there are no more digits in the resulting number:
          </p>
<pre class="programlisting"><span class="identifier">stream_parser</span> <span class="identifier">p</span><span class="special">;</span>                                <span class="comment">// construct a parser</span>
<span class="identifier">p</span><span class="special">.</span><span class="identifier">write</span><span class="special">(</span> <span class="string">"3."</span> <span class="special">);</span>                                <span class="comment">// write the first part of the number</span>
<span class="identifier">p</span><span class="special">.</span><span class="identifier">write</span><span class="special">(</span> <span class="string">"14"</span> <span class="special">);</span>                                <span class="comment">// write the second part of the number</span>
<span class="identifier">assert</span><span class="special">(</span> <span class="special">!</span> <span class="identifier">p</span><span class="special">.</span><span class="identifier">done</span><span class="special">()</span> <span class="special">);</span>                           <span class="comment">// there could be more digits</span>
<span class="identifier">p</span><span class="special">.</span><span class="identifier">finish</span><span class="special">();</span>                                     <span class="comment">// indicate the end of the JSON input</span>
<span class="identifier">assert</span><span class="special">(</span> <span class="identifier">p</span><span class="special">.</span><span class="identifier">done</span><span class="special">()</span> <span class="special">);</span>                             <span class="comment">// now we are finished</span>
<span class="identifier">value</span> <span class="identifier">jv</span> <span class="special">=</span> <span class="identifier">p</span><span class="special">.</span><span class="identifier">release</span><span class="special">();</span>                         <span class="comment">// take ownership of the value</span>
</pre>
<h7><a name="json.ref.boost__json__stream_parser.finish.overload3.h3"></a>
            <span class="phrase"><a name="json.ref.boost__json__stream_parser.finish.overload3.complexity"></a></span><a class="link" href="overload3.html#json.ref.boost__json__stream_parser.finish.overload3.complexity">Complexity</a>
          </h7><p>
            Constant.
          </p>
<h7><a name="json.ref.boost__json__stream_parser.finish.overload3.h4"></a>
            <span class="phrase"><a name="json.ref.boost__json__stream_parser.finish.overload3.exception_safety"></a></span><a class="link" href="overload3.html#json.ref.boost__json__stream_parser.finish.overload3.exception_safety">Exception
            Safety</a>
          </h7><p>
            Basic guarantee. Calls to <code class="computeroutput"><span class="identifier">memory_resource</span><span class="special">::</span><span class="identifier">allocate</span></code>
            may throw. Upon error or exception, subsequent calls will fail until
            <a class="link" href="../reset.html" title="stream_parser::reset"><code class="computeroutput"><span class="identifier">reset</span></code></a> is called to parse a new
            JSON.
          </p>
<h7><a name="json.ref.boost__json__stream_parser.finish.overload3.h5"></a>
            <span class="phrase"><a name="json.ref.boost__json__stream_parser.finish.overload3.exceptions"></a></span><a class="link" href="overload3.html#json.ref.boost__json__stream_parser.finish.overload3.exceptions">Exceptions</a>
          </h7><div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                    <p>
                      Type
                    </p>
                  </th>
<th>
                    <p>
                      Thrown On
                    </p>
                  </th>
</tr></thead>
<tbody><tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">system_error</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      Thrown on error.
                    </p>
                  </td>
</tr></tbody>
</table></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2019, 2020 Vinnie Falco<br>Copyright © 2020 Krystian Stasiowski<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="overload2.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../finish.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../stream_parser.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
